透過Notification類別,可以在系統發出通知給使用者
從API 26開始,多了通知頻道的功能,而且必須要實作通知頻道才能發出通知
建立通知頻道需要有以下三個參數:
IMPORTANCE_NONE:不重要,沒有提醒效果(彈出提醒、音效和震動),也不會顯示通知
IMPORTANCE_MIN:重要性最低,沒有提醒效果(彈出提醒、音效和震動),不顯示在狀態欄,只顯示在展開的通知欄中
IMPORTANCE_LOW:重要性低,沒有提醒效果(彈出提醒、音效及震動),顯示在狀態欄和展開的通知欄中
IMPORTANCE_DEFAULT:預設的重要性,不會彈出提醒,但可發出音效及震動,顯示在狀態欄及展開的通知欄中。
IMPORTANCE_HIGH:重要性高,會彈出提醒,可以發出音效及震動,顯示在狀態欄及展開的通知欄中,可以使用全螢幕的Intent
val channel = NotificationChannel("Ch1", "Day29", NotificationManager.IMPORTANCE_HIGH)
通知的類別,用於設置通知的樣式
用.Builder()
建立Notification,第二個參數是通知頻道
val notification = Notification.Builder(this, "Ch1")
設置通知樣式的方法有
.setSmallIcon()
.setLargeIcon()
.setContentTitle()
.setContentText()
.setContentIntent()
.setAutoCancel()
.setSound()
.setLights()
最後使用.build()
建立通知
例如:設置一個標題為"通知",內文是"第29天~",且被點選後會自動消失的通知
val notification = Notification.Builder(this, "Ch1")
.setSmallIcon(R.drawable.notification_icon_background)
.setContentTitle("通知")
.setContentText("第29天~")
.setAutoCancel(true)
.build()
負責發出通知的類別
首先建立一個NotificationManager
val manager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
使用.createNotificationChannel()
設定通知頻道,.notify()
發出通知
manager.createNotificationChannel(channel)
//第一個參數是辨識通知的ID 第二個是要使用的Notification
manager.notify(0, notification)